package com.xin.demo.sigle;

/**
 * 通过 枚举保证了线程的安全，也可以防止反序列化
 *
 * 枚举没法进行 继承，因此有时候通常需要类来进行操作，此处是将类 通过枚举来实现单列
 */
public class Single09 {


    public static Single09 getINSTANCE() {
        return Single09Enum.SINGLE09.getInstance();
    }

    public enum Single09Enum {
        SINGLE09;
        private final Single09 INSTANCE;

        Single09Enum() {
            INSTANCE = new Single09();
        }

        public Single09 getInstance() {
            return INSTANCE;
        }
    }

    public static void main(String[] args) {
        System.out.println(2);
        for (int i = 0; i < 100; i++) {
            new Thread(() -> {
                System.out.println(Single09.getINSTANCE().hashCode());
            }).start();
        }
    }
}
